<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/Microsoft.Research.DataLayer.ServiceModel" xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Microsoft.Research.DataLayer.ServiceModel" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="http://localhost:53417/TridentService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
  <xs:complexType name="UserModel">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:BaseModel">
        <xs:sequence>
          <xs:element name="role" type="tns:UserRole" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="UserModel" nillable="true" type="tns:UserModel" />
  <xs:complexType name="BaseModel">
    <xs:sequence>
      <xs:element name="id" type="ser:guid" />
      <xs:element name="isSelected" type="xs:boolean" />
      <xs:element name="label" nillable="true" type="xs:string" />
      <xs:element name="name" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="BaseModel" nillable="true" type="tns:BaseModel" />
  <xs:simpleType name="UserRole">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Admin" />
      <xs:enumeration value="NormalUser" />
      <xs:enumeration value="Guest" />
      <xs:enumeration value="Service" />
      <xs:enumeration value="InValid" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="UserRole" nillable="true" type="tns:UserRole" />
  <xs:complexType name="ArrayOfLeftPaneModel">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="LeftPaneModel" nillable="true" type="tns:LeftPaneModel" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfLeftPaneModel" nillable="true" type="tns:ArrayOfLeftPaneModel" />
  <xs:complexType name="LeftPaneModel">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:BaseModel">
        <xs:sequence>
          <xs:element name="children" nillable="true" type="tns:ArrayOfLeftPaneModel" />
          <xs:element name="isCategoryModel" type="xs:boolean" />
          <xs:element name="modifiedTime" type="xs:dateTime" />
          <xs:element name="versionLabel" nillable="true" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="LeftPaneModel" nillable="true" type="tns:LeftPaneModel" />
  <xs:complexType name="DetailedWorkflowModel">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:BaseModel">
        <xs:sequence>
          <xs:element name="nodes" nillable="true" type="tns:ArrayOfNodeModel" />
          <xs:element name="workflowRequiredParameters" nillable="true" type="tns:ArrayOfParameterDescriptionModel" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="DetailedWorkflowModel" nillable="true" type="tns:DetailedWorkflowModel" />
  <xs:complexType name="ArrayOfNodeModel">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="NodeModel" nillable="true" type="tns:NodeModel" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfNodeModel" nillable="true" type="tns:ArrayOfNodeModel" />
  <xs:complexType name="NodeModel">
    <xs:sequence>
      <xs:element name="_x003C_IsInteractive_x003E_k__BackingField" type="xs:boolean" />
      <xs:element name="_x003C_NodeId_x003E_k__BackingField" type="ser:guid" />
      <xs:element name="_x003C_NodeName_x003E_k__BackingField" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="NodeModel" nillable="true" type="tns:NodeModel" />
  <xs:complexType name="ArrayOfParameterDescriptionModel">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ParameterDescriptionModel" nillable="true" type="tns:ParameterDescriptionModel" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfParameterDescriptionModel" nillable="true" type="tns:ArrayOfParameterDescriptionModel" />
  <xs:complexType name="ParameterDescriptionModel">
    <xs:sequence>
      <xs:element name="_x003C_ActivityUniqueId_x003E_k__BackingField" nillable="true" type="xs:string" />
      <xs:element name="_x003C_AutomationId_x003E_k__BackingField" nillable="true" type="xs:string" />
      <xs:element name="activityName" nillable="true" type="xs:string" />
      <xs:element name="dataType" nillable="true" type="xs:string" />
      <xs:element name="description" nillable="true" type="xs:string" />
      <xs:element name="id" type="ser:guid" />
      <xs:element name="isDatabound" type="xs:boolean" />
      <xs:element name="isMandatoryForWorkflow" type="xs:boolean" />
      <xs:element name="isValueInvalid" nillable="true" type="xs:boolean" />
      <xs:element name="label" nillable="true" type="xs:string" />
      <xs:element name="propertyName" nillable="true" type="xs:string" />
      <xs:element name="value" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ParameterDescriptionModel" nillable="true" type="tns:ParameterDescriptionModel" />
  <xs:complexType name="WorkflowModel">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:BaseModel">
        <xs:sequence>
          <xs:element name="modifiedTime" type="xs:dateTime" />
          <xs:element name="versionLabel" nillable="true" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="WorkflowModel" nillable="true" type="tns:WorkflowModel" />
  <xs:complexType name="ArrayOfDataProductModel">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="DataProductModel" nillable="true" type="tns:DataProductModel" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfDataProductModel" nillable="true" type="tns:ArrayOfDataProductModel" />
  <xs:complexType name="DataProductModel">
    <xs:sequence>
      <xs:element name="activityName" nillable="true" type="xs:string" />
      <xs:element name="activityUniqueName" nillable="true" type="xs:string" />
      <xs:element name="dataproductName" nillable="true" type="xs:string" />
      <xs:element name="id" type="ser:guid" />
      <xs:element name="isFinal" type="xs:boolean" />
      <xs:element name="parameterName" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DataProductModel" nillable="true" type="tns:DataProductModel" />
  <xs:complexType name="JobDetails">
    <xs:sequence>
      <xs:element name="errormessage" nillable="true" type="xs:string" />
      <xs:element name="isdeleted" type="xs:boolean" />
      <xs:element name="jobId" type="ser:guid" />
      <xs:element name="jobName" nillable="true" type="xs:string" />
      <xs:element name="notes" nillable="true" type="xs:string" />
      <xs:element name="status" type="tns:JobStatus" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="JobDetails" nillable="true" type="tns:JobDetails" />
  <xs:simpleType name="JobStatus">
    <xs:restriction base="xs:string">
      <xs:enumeration value="NotStarted" />
      <xs:enumeration value="Initializing" />
      <xs:enumeration value="Running" />
      <xs:enumeration value="Paused" />
      <xs:enumeration value="Waiting" />
      <xs:enumeration value="Completed" />
      <xs:enumeration value="Aborted" />
      <xs:enumeration value="StartPending" />
      <xs:enumeration value="StopPending" />
      <xs:enumeration value="PausePending" />
      <xs:enumeration value="ResumePending" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="JobStatus" nillable="true" type="tns:JobStatus" />
  <xs:complexType name="JobDescriptionModel">
    <xs:sequence>
      <xs:element name="RequiredParameters" nillable="true" type="tns:ArrayOfParameterDescriptionModel" />
      <xs:element name="jobName" nillable="true" type="xs:string" />
      <xs:element name="jobNotes" nillable="true" type="xs:string" />
      <xs:element name="nodeToExecuteOn" nillable="true" type="tns:NodeModel" />
      <xs:element name="scheduledBy" nillable="true" type="tns:UserModel" />
      <xs:element name="workflowId" type="ser:guid" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="JobDescriptionModel" nillable="true" type="tns:JobDescriptionModel" />
</xs:schema>